The present invention relates generally to the field of table data structures (or, simply “tables”), and more particularly to certain ways of combining multiple tables into a single “hybrid table.” A relational database management system (RDBMS) is a database management system (DBMS) that is based on a certain relational model. RDBMSes are typically used for the storage of information in new databases used for financial records, manufacturing and logistical information, personnel data, and so on. Relational databases are sometimes used instead of other types of databases, such as legacy hierarchical databases, network databases and object databases.
Relational databases are herein defined to be databases that present a view of data as a collection of rows and columns, whether or not the underlying machine logic is entirely and strictly based upon every tenet of traditional “relational theory.”
Query languages are used to “query” databases so that end users (such as database administrators and others) can find selected, relevant data within the context of an (often quite large) database. Most commercial RDBMSes use SQL for their associated “query language.” The table(s) of an RDBMS may be stored in either of: (i) a row oriented manner (also sometimes herein referred to as “row based”); or (ii) a column oriented manner (also sometimes herein referred to as “column based”). Row oriented tables are generally used for OLTP (Online transaction processing) applications because row oriented tables are better suited for point queries and updates that add or change only a small amount of data. A single row inserted has one I/O to place the entire row on a single page on disk. On the other hand, column oriented tables are understood to be able to run business intelligence queries faster than on a comparable row oriented table. Unfortunately, inserting or updating a small amount of data in a column oriented table generally takes longer than a comparable change in data would take to be made to a comparable row oriented table. This is mainly because each column is stored separately in a column oriented table and therefore requires separate I/O (input/output addressing) in order to insert or update each column object.
In some known RDBMS products, all the data in a table is separately stored as both of the following: (i) a row oriented table; and (ii) a column oriented table. In this way: (i) types of table accesses that are optimally performed on a row oriented table can be performed on the row oriented version of the table; and (ii) types of table accesses that are optimally performed on a column oriented version of the table can be performed on the column oriented version of the table. It is understood that this type of RMBMS takes significantly more storage space than a comparable RDBMS where only a single version of each table is maintained.
“Hybrid tables” are also known. In a hybrid table, some of the data is stored in a row oriented fashion and some of the data is stored in a column oriented fashion. Here is an example of a conventional hybrid table:
NAMEAGEFAVORITE GUMAble20bubbleBaker35nicotineCharlie50mintNAMEDarlaEdgarFrankAGE224546FVT GUMfruitlicoricetea berryIn this example: (i) data associated with Able, Baker and Charlie is stored in a row oriented manner; and (ii) data associated with Darla, Edgar and Frank is stored in a column oriented fashion; and (iii) the table is “hybrid” because there is both row oriented and column oriented data in a single “hybrid table” that is made up of a row table and a column table, with both tables being made up of records having the same attribute fields. The term “hybrid table, as used in this document, will be further explained, below, in the Detailed Description section.